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

πŸ§‘β€πŸ’» πŸ”¨ πŸ”§ πŸ‘· Mise, Kind, and Tilt #955

Merged
merged 8 commits into from
Sep 13, 2024

Conversation

rblaine95
Copy link
Collaborator

@rblaine95 rblaine95 commented Aug 5, 2024

Well, this is a big one...

It's finally here, the migration away from ./manage up and Docker Compose πŸŽ‰

Standardize everything around Mise, Kind, and Tilt, enabling Kubernetes Native Development with live reloading.

Still to discuss: Migrate Helm Charts from private repo to this repo.
This will make maintaining the Helm Charts much easier.

Potential future improvements:

  • Only run Regression Tests against EKS
  • Run regular containerized tests against ephemeral Kind cluster

This will mean we can run multiple PRs at the same time, accelerating dev.


Mise, Kind, and Tilt

  • Use Mise to install and manage tools
  • Use Mise Tasks to install module dependencies
  • Activate Mise managed Python venv
  • Make Poetry version a build arg, disable pip caching

Docker Pull Through Caching

  • Add Docker pull-through caching for:

    • docker.io
    • gcr.io
    • ghcr.io
    • quay.io
    • registry.k8s.io
  • Delete docker cache container kind:destroy

  • Only delete the actual cache on kind:destroy-all

Setup DBs, enable mise experimental

  • Set mise experimental in .mise.toml
  • Try cloning charts via SSH, fallback to HTTPS if failed
  • Setup Redis, Postgres, and PGAdmin for CloudAPI

Setup Ledger

  • Due to instability of running Ledger Nodes/Browser in Kind,
    especially on resource restricted environments (github runners),
    maintain using Docker Compose but only for Ledger Nodes/Browser

WRT Ledger Nodes/Browser:

I could add a check to see host resources (number of CPU cores) and
then decide whether or not to deploy Ledger Nodes/Browser in Kind.
Alternatively, I can add a CLI arg to decide between Compose Ledger
vs Kind Ledger.

@rblaine95 rblaine95 self-assigned this Aug 5, 2024
@rblaine95 rblaine95 force-pushed the feature/mise-and-kind branch 2 times, most recently from 18364a2 to 47b7bdb Compare August 6, 2024 08:41
dockerfiles/tests/Dockerfile Fixed Show fixed Hide fixed
dockerfiles/tests/Dockerfile Fixed Show fixed Hide fixed
dockerfiles/tests/Dockerfile Fixed Show resolved Hide resolved
@rblaine95 rblaine95 changed the title 🚧 Mise and Kind 🚧 πŸ§‘β€πŸ’» πŸ”¨ Mise and Kind Aug 6, 2024
@rblaine95 rblaine95 changed the title 🚧 πŸ§‘β€πŸ’» πŸ”¨ Mise and Kind 🚧 πŸ§‘β€πŸ’» πŸ”¨ πŸ”§ Mise and Kind Aug 6, 2024
@rblaine95 rblaine95 changed the title 🚧 πŸ§‘β€πŸ’» πŸ”¨ πŸ”§ Mise and Kind 🚧 πŸ§‘β€πŸ’» πŸ”¨ πŸ”§ πŸ‘· Mise and Kind Aug 6, 2024
README.md Fixed Show fixed Hide fixed
@rblaine95 rblaine95 marked this pull request as ready for review August 6, 2024 10:51
README.md Fixed Show fixed Hide fixed
README.md Fixed Show fixed Hide fixed
README.md Fixed Show fixed Hide fixed
README.md Fixed Show fixed Hide fixed
README.md Dismissed Show dismissed Hide dismissed
README.md Dismissed Show dismissed Hide dismissed
README.md Fixed Show fixed Hide fixed
Copy link

Coverage

K8s Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611280%110–111, 124–140, 196–197
Β  Β acapy_wallet.py40490%60–61, 98–99
Β  Β revocation_registry.py1723580%118–160, 201–205, 372–376, 415–420, 453–457, 485–490, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_tenants.py4201596%203, 247–248, 287, 788, 832–833, 842–843, 852–853, 865–866, 875–876
Β  Β test_wallet_credentials.py30197%55
Β  Β test_wallet_dids.py701086%101–116
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py63297%66–67
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_records_paginated.py62297%60–61
Β  Β test_proof_revoked_credential.py451273%130–203
Β  Β test_verifier.py2361295%691–762
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1193769%176, 270–351, 364–436
Β  Β definitions.py662661%29–50, 64–65, 94–124, 143–144
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_connections.py43881%80–91, 130–141
Β  Β member_wallets.py611575%29–34, 49–54, 69–74, 89–94, 111–118
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py872967%104–129, 138–155, 172–181, 236–256
Β  Β ledger.py501080%35, 43, 55, 63–67, 77, 83
Β  Β regression_testing.py351751%33, 41–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β trust_registry.py29390%24, 27–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py18856%17–33
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py361558%20–35, 76–77, 91–103
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14286%31–32
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL1511692894%Β 

Tests Skipped Failures Errors Time
1083 4 πŸ’€ 0 ❌ 0 πŸ”₯ 4m 13s ⏱️

Copy link

Coverage

K8s Regression Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611969%43–49, 79, 110–111, 124–140, 146–149, 196–197
Β  Β acapy_wallet.py401270%49–64, 98–99
Β  Β revocation_registry.py1724673%118–160, 201–205, 372–376, 415–420, 453–457, 475–490, 496–505, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_definitions.py795135%33–56, 68–80, 92–106, 118–146, 164–209
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_revocation.py1117334%27–77, 90–107, 118–144, 156–181, 193–207, 219–256, 267–293, 305–335, 346–349
Β  Β test_tenants.py42036314%29–73, 84–117, 128–172, 185–254, 265–316, 329–458, 467–519, 528–564, 573–622, 631–680, 691–733, 745–794, 805–876, 885–992
Β  Β test_wallet_dids.py701579%101–116, 128–139
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py635217%25–162
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_credentials_by_proof_id.py251252%27–82
Β  Β test_get_records_paginated.py624921%27–156
Β  Β test_proof_revoked_credential.py451176%39–116
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1195554%132–207, 216–224, 234–255, 289–349, 384–434
Β  Β definitions.py661085%41–48, 57–63, 114–121, 134–139
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_async_clients.py50296%32–33
Β  Β member_connections.py43491%73, 91, 123, 141
Β  Β member_wallets.py611575%23–27, 43–47, 63–67, 83–87, 103–109
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py871978%154–155, 169, 181, 191–223, 251–256
Β  Β ledger.py502648%34–59, 63–67, 73–86
Β  Β regression_testing.py35974%33, 60–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β tenants.py241250%10, 16–17, 21–26, 30–35, 39–44, 48–53, 57
Β  Β trust_registry.py29776%20–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py181233%14–34
Β  Β check_endorser_connection.py10460%14–24
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py363017%15–36, 68–114
Β  Β string.py15193%24
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14750%18–36
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL15116156990%Β 

Tests Skipped Failures Errors Time
1083 39 πŸ’€ 0 ❌ 0 πŸ”₯ 5m 57s ⏱️

rblaine95 and others added 8 commits September 13, 2024 11:05
* Use Mise to install and manage tools
* Use Mise Tasks to install module dependencies
* Activate Mise managed Python venv
* Make Poetry version a build arg, disable pip caching

Docker Pull Through Caching

* Add Docker pull-through caching for:
  * docker.io
  * gcr.io
  * ghcr.io
  * quay.io
  * registry.k8s.io

* Delete docker cache container `kind:destroy`
* Only delete the actual cache on `kind:destroy-all`

Setup DBs, enable mise experimental

* Set mise experimental in `.mise.toml`
* Try cloning charts via SSH, fallback to HTTPS if failed
* Setup Redis, Postgres, and PGAdmin for CloudAPI

Setup Ledger

* Detect system CPU Architecture
* If `x86_64` then we deploy Ledger Nodes/Browser into Kind
* Otherwise we use Docker Compose to build and deploy Ledger Nodes/Browser

Istio K8s Native Sidecars

* Enable Native Sidecars
* Also reduce Istiod replicas from 2 to 1

Tilt CI

Deploy NATS

* Install Nats CLI via Mise
* Bump Metrics Server `7.2.13` -> `7.2.14`
* Bump Postgres `14.2.18` -> `14.2.23`
* Add NATS

NATS Wrapper chart

* Create a small NATS wrapper chart with a post-install hook
* Post install hook currently only bootstraps NATS KVs and Streams

Remove Manage Script

Disable Ledger Nodes/Browser Kind deployment

* Ledger Nodes/Browser is just too unstable in K8s
* Especially in resource constrained (github runners) environments
* Increase maximum parallel updates
* Benthos depends on Redis and NATS
* Resource Labels to make tilt navigation easier
* Pin Go and NATS CLI
* Add Mise Task to run `tilt down -- --destroy`
* Increase k8s upsert timeout in Tilt
* Add tiltfile to recommended vscode extensions
* Add notes about Windows and WSL for Mise and Kind
* Restore original Docker Compose and Manage script
* Add Notes in Readme about deprecation of Docker Compose
* Restore Makefile
* Don't build ledger nodes if build is disabled
* Fix `tilt down`
* Add some more mise tasks:
  * `tilt:down` - runs `tilt down`
  * `tilt:down:destroy` - runs `tilt down` and deletes Kind cluster
  * `tilt:down:destroy:all` - same as `destroy` but also deletes docker
  cache
  * `kind:create` depends on `kind:install:registry` and
  `kind:install:pull-through`
* Add steps for correct env vars to run tests
* Ensure env vars on `mise run tests`
* Install Istio and Ingress Nginx at the same time
* Make things depend on Ingress Nginx
* Reduce parallel updates for improved stability
* Get Docker Cache Logs

Depend on Istio

* Everything depends on Istio
* Disable Auto Init on PGAdmin and Metrics Server
* Remove `gcr.io` from docker cache
Copy link

sonarcloud bot commented Sep 13, 2024

Copy link

Coverage

K8s Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611280%110–111, 124–140, 196–197
Β  Β acapy_wallet.py40490%60–61, 98–99
Β  Β revocation_registry.py1723580%118–160, 201–205, 372–376, 415–420, 453–457, 485–490, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_tenants.py4201596%203, 247–248, 287, 788, 832–833, 842–843, 852–853, 865–866, 875–876
Β  Β test_wallet_credentials.py30197%55
Β  Β test_wallet_dids.py701086%101–116
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py63297%66–67
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_records_paginated.py62297%60–61
Β  Β test_proof_revoked_credential.py451273%130–203
Β  Β test_verifier.py2361295%691–762
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1193769%176, 270–351, 364–436
Β  Β definitions.py662661%29–50, 64–65, 94–124, 143–144
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_connections.py43881%80–91, 130–141
Β  Β member_wallets.py611575%29–34, 49–54, 69–74, 89–94, 111–118
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py872967%104–129, 138–155, 172–181, 236–256
Β  Β ledger.py501080%35, 43, 55, 63–67, 77, 83
Β  Β regression_testing.py351751%33, 41–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β trust_registry.py29390%24, 27–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py18856%17–33
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py361558%20–35, 76–77, 91–103
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14286%31–32
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL1511692894%Β 

Tests Skipped Failures Errors Time
1083 4 πŸ’€ 0 ❌ 0 πŸ”₯ 4m 45s ⏱️

Copy link

Coverage

K8s Regression Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611969%43–49, 79, 110–111, 124–140, 146–149, 196–197
Β  Β acapy_wallet.py401270%49–64, 98–99
Β  Β revocation_registry.py1724673%118–160, 201–205, 372–376, 415–420, 453–457, 475–490, 496–505, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_definitions.py795135%33–56, 68–80, 92–106, 118–146, 164–209
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_revocation.py1117334%27–77, 90–107, 118–144, 156–181, 193–207, 219–256, 267–293, 305–335, 346–349
Β  Β test_tenants.py42036314%29–73, 84–117, 128–172, 185–254, 265–316, 329–458, 467–519, 528–564, 573–622, 631–680, 691–733, 745–794, 805–876, 885–992
Β  Β test_wallet_dids.py701579%101–116, 128–139
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py635217%25–162
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_credentials_by_proof_id.py251252%27–82
Β  Β test_get_records_paginated.py624921%27–156
Β  Β test_proof_revoked_credential.py451176%39–116
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1195554%132–207, 216–224, 234–255, 289–349, 384–434
Β  Β definitions.py661085%41–48, 57–63, 114–121, 134–139
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_async_clients.py50296%32–33
Β  Β member_connections.py43491%73, 91, 123, 141
Β  Β member_wallets.py611575%23–27, 43–47, 63–67, 83–87, 103–109
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py871978%154–155, 169, 181, 191–223, 251–256
Β  Β ledger.py502648%34–59, 63–67, 73–86
Β  Β regression_testing.py35974%33, 60–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β tenants.py241250%10, 16–17, 21–26, 30–35, 39–44, 48–53, 57
Β  Β trust_registry.py29776%20–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py181233%14–34
Β  Β check_endorser_connection.py10460%14–24
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py363017%15–36, 68–114
Β  Β string.py15193%24
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14750%18–36
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL15116156990%Β 

Tests Skipped Failures Errors Time
1083 39 πŸ’€ 0 ❌ 0 πŸ”₯ 6m 35s ⏱️

Copy link

Coverage

K8s Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611280%110–111, 124–140, 196–197
Β  Β acapy_wallet.py40490%60–61, 98–99
Β  Β revocation_registry.py1723580%118–160, 201–205, 372–376, 415–420, 453–457, 485–490, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_tenants.py4201596%203, 247–248, 287, 788, 832–833, 842–843, 852–853, 865–866, 875–876
Β  Β test_wallet_credentials.py30197%55
Β  Β test_wallet_dids.py701086%101–116
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py63297%66–67
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_records_paginated.py62297%60–61
Β  Β test_proof_revoked_credential.py451273%130–203
Β  Β test_verifier.py2361295%691–762
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1193769%176, 270–351, 364–436
Β  Β definitions.py662661%29–50, 64–65, 94–124, 143–144
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_connections.py43881%80–91, 130–141
Β  Β member_wallets.py611575%29–34, 49–54, 69–74, 89–94, 111–118
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py872967%104–129, 138–155, 172–181, 236–256
Β  Β ledger.py501080%35, 43, 55, 63–67, 77, 83
Β  Β regression_testing.py351751%33, 41–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β trust_registry.py29390%24, 27–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py18856%17–33
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py361558%20–35, 76–77, 91–103
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14286%31–32
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL1511692894%Β 

Tests Skipped Failures Errors Time
1083 4 πŸ’€ 0 ❌ 0 πŸ”₯ 4m 31s ⏱️

Copy link

Coverage

K8s Regression Test Coverage
FileStmtsMissCoverMissing
app/routes
Β  Β issuer.py185299%682–683
Β  Β jsonld.py604722%23–93, 104–137
Β  Β messaging.py241154%43–52, 85–95
Β  Β oob.py462839%58–99, 131–144, 170–181
Β  Β trust_registry.py62297%52–53
Β  Β verifier.py1483378%100–102, 107, 167–169, 174, 250, 258–260, 265, 309–314, 320–322, 395–397, 403, 442–444, 449, 485–487, 543–545
Β  Β webhooks.py16475%32–36, 57–61
Β  Β websocket_endpoint.py23865%24–25, 37–42, 54–57, 70–76
app/routes/wallet
Β  Β credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
Β  Β jws.py422736%35–60, 76–99
Β  Β sd_jws.py422736%36–61, 78–101
app/services
Β  Β acapy_ledger.py611969%43–49, 79, 110–111, 124–140, 146–149, 196–197
Β  Β acapy_wallet.py401270%49–64, 98–99
Β  Β revocation_registry.py1724673%118–160, 201–205, 372–376, 415–420, 453–457, 475–490, 496–505, 539–540
Β  Β webhooks.py271833%17–25, 29–39
Β  Β websocket.py514120%19–22, 29–36, 47–91
app/services/event_handling
Β  Β websocket_manager.py732664%64–68, 87–90, 97–108, 115–125, 139
app/services/issuer
Β  Β acapy_issuer_v1.py871484%36, 76–110, 205–206
Β  Β acapy_issuer_v2.py1011288%63, 97–106, 110, 126–127, 173, 227–228, 255
app/services/onboarding
Β  Β tenants.py594524%30–98, 108–138
Β  Β verifier.py37392%67, 83–87
app/services/onboarding/util
Β  Β register_issuer_did.py86397%100–102
Β  Β set_endorser_metadata.py724044%28–30, 50–52, 76–78, 109–128, 140–151, 163–176, 189–203
app/services/trust_registry
Β  Β actors.py107992%95–100, 110, 209–210, 212–217, 282–285
Β  Β schemas.py54983%57–63, 89–99
app/services/trust_registry/util
Β  Β actor.py31294%26–27
Β  Β issuer.py23483%39–40, 48–49
app/tests/e2e
Β  Β conftest.py23578%46–54
Β  Β test_connections.py149299%281–282
Β  Β test_definitions.py795135%33–56, 68–80, 92–106, 118–146, 164–209
Β  Β test_jsonld.py591673%134–169
Β  Β test_proof_request_models.py31197%130
Β  Β test_revocation.py1117334%27–77, 90–107, 118–144, 156–181, 193–207, 219–256, 267–293, 305–335, 346–349
Β  Β test_tenants.py42036314%29–73, 84–117, 128–172, 185–254, 265–316, 329–458, 467–519, 528–564, 573–622, 631–680, 691–733, 745–794, 805–876, 885–992
Β  Β test_wallet_dids.py701579%101–116, 128–139
app/tests/e2e/issuer
Β  Β test_get_records_paginated.py635217%25–162
Β  Β test_save_exchange_record.py74199%180
app/tests/e2e/verifier
Β  Β test_get_credentials_by_proof_id.py251252%27–82
Β  Β test_get_records_paginated.py624921%27–156
Β  Β test_proof_revoked_credential.py451176%39–116
app/tests/exception_handling
Β  Β test_handle_model_with_validation.py23196%22
app/tests/fixtures
Β  Β credentials.py1195554%132–207, 216–224, 234–255, 289–349, 384–434
Β  Β definitions.py661085%41–48, 57–63, 114–121, 134–139
Β  Β member_acapy_clients.py36489%47–50, 73–74
Β  Β member_async_clients.py50296%32–33
Β  Β member_connections.py43491%73, 91, 123, 141
Β  Β member_wallets.py611575%23–27, 43–47, 63–67, 83–87, 103–109
app/tests/routes/issuer
Β  Β test_create_offer.py39197%150
Β  Β test_send_credential.py36197%129
app/tests/routes/wallet/dids
Β  Β test_get_public_did.py29197%40
app/tests/services
Β  Β test_revocation_registry.py149299%75, 106
app/tests/services/issuer
Β  Β test_issuer.py160299%359–363
app/tests/util
Β  Β connections.py871978%154–155, 169, 181, 191–223, 251–256
Β  Β ledger.py502648%34–59, 63–67, 73–86
Β  Β regression_testing.py35974%33, 60–68, 74–81
Β  Β sse_listener.py41880%50–55, 79–84
Β  Β tenants.py241250%10, 16–17, 21–26, 30–35, 39–44, 48–53, 57
Β  Β trust_registry.py29776%20–28
Β  Β webhooks.py56591%20, 79–82, 105, 129
app/util
Β  Β acapy_issuer_utils.py18194%22
Β  Β acapy_verifier_utils.py137596%108–111, 191–195, 272
Β  Β assert_public_did.py181233%14–34
Β  Β check_endorser_connection.py10460%14–24
Β  Β credentials.py13285%11, 18
Β  Β retry_method.py363017%15–36, 68–114
Β  Β string.py15193%24
Β  Β tenants.py451762%24–29, 44–45, 52–59, 90–91, 97, 124
Β  Β transaction_acked.py14750%18–36
endorser/services
Β  Β endorsement_processor.py137696%90, 152–162
webhooks/models
Β  Β conversions.py63690%70, 83, 91, 112, 149, 168
webhooks/services
Β  Β acapy_events_processor.py1933283%98, 161–171, 194–208, 222, 229–235, 261, 289–290, 318–322, 335–339, 364–377
Β  Β billing_manager.py175498%91, 98–99, 132
Β  Β sse_manager.py2343685%155, 157–170, 208–218, 251–252, 265–279, 334–338, 344–347, 349–352, 377–378, 421–423, 457, 468–469
Β  Β webhooks_redis_service.py1401986%70, 237–238, 354, 378–398, 411–422
webhooks/tests/services
Β  Β test_acapy_events_processor.py161299%168–171
Β  Β test_sse_manager.py179398%214–215, 221
webhooks/web/routers
Β  Β sse.py102397%168–171
TOTAL15116156990%Β 

Tests Skipped Failures Errors Time
1083 39 πŸ’€ 0 ❌ 0 πŸ”₯ 6m 33s ⏱️

@rblaine95 rblaine95 merged commit b5137f4 into development Sep 13, 2024
49 checks passed
@rblaine95 rblaine95 deleted the feature/mise-and-kind branch September 13, 2024 09:43
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.

4 participants