{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29"},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31"},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}]},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"IdentityServerDataSeedContributor.CreateClientAsync (cyclomatic 17): IdentityServerDataSeedContributor.CreateClientAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Data/IdentityServerDataSeedContributor.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"36422849de86078a97415150d3d6c429a781b580b3218aa9b5e7ab5c45521e8e"}},{"ruleId":"D2","level":"warning","message":{"text":"IdentityServerDataSeedContributor.CreateClientAsync (cognitive 24): IdentityServerDataSeedContributor.CreateClientAsync has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Data/IdentityServerDataSeedContributor.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"9615f324f61ba94fe4e0cee9f9bd7e6b811868981d29dfb704da87d2c9d6bf3e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 4): src/EventHub.IdentityServer/Program.cs:22-51 | src/EventHub.HttpApi.Host/Program.cs:23-52 | src/EventHub.Web/Program.cs:22-51 | src/EventHub.Admin.HttpApi.Host/Program.cs:22-51"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Program.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"c860693ff97dc68d504bf27ca34db7fe87c5f5f0b7905f0df96347abe5d9bdea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 4): src/EventHub.IdentityServer/Utils/SameSiteCookiesServiceCollectionExtensions.cs:37-63 | src/EventHub.HttpApi.Host/Utils/SameSiteCookiesServiceCollectionExtensions.cs:37-63 | src/EventHub.Web/Utils/SameSiteCookiesServiceCollectionExtensions.cs:37-63 | src/EventHub.Admin.HttpApi.Host/Utils/SameSiteCookiesServiceCollectionExtensions.cs:37-63"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Utils/SameSiteCookiesServiceCollectionExtensions.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb02563946f71cae3bceaaa08aab2a2f376069cf1b5e757b5ed7390c1925e064"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 3): src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:154-174 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:183-201 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:210-228"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"2674027e6d1a4ef2958f7f499147fc3faa9e10c7475e5c8d36da1e81aef7c201"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 3): src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:319-332 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:351-370 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:383-402"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"232a5ff6960e50f1bf66837e6926e1893aa57d1aa67a798017921e05f094ff42"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs:233-252 | src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs:216-235"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f425a9bd5b66fd0e278db27c39344fd6810a94b71ade9ffd3fe847fd89f0beb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 4): src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:249-258 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:270-279 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:292-301 | src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs:313-328"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c9015340912128f4104bb3ee3d6eb8f47dc53e485a0c32bc46c7d7b040f437e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/EventHub.BackgroundServices/Events/EventTimingChangeNotifier.cs:51-66 | src/EventHub.BackgroundServices/Events/NewEventNotifier.cs:51-66"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Events/EventTimingChangeNotifier.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2179842bdc60d16d91784fbe3c966a9228f400e726fb8456880979e88fb5e15"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/EventHub.Domain/Data/IdentityServerDataSeedContributor.cs:163-177 | src/EventHub.Domain/Data/IdentityServerDataSeedContributor.cs:181-195"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Data/IdentityServerDataSeedContributor.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"1731c51000e4f7b9d8c8bbdd7206a4ee44c4178d1e1819e95d484d9c6b46c89a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): src/EventHub.IdentityServer/EventHubIdentityServerModule.cs:212-225 | src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs:248-261 | src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs:231-244"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/EventHubIdentityServerModule.cs"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"73888ce31b181187a6a36c91c8ce91f43cac118893b595f5a4ad0bccac04b3ad"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs:60-73 | src/EventHub.BackgroundServices/Events/EventTimingChangeNotifier.cs:50-63"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"85ce54bf1f7f6c9386a16c07ca10cb2b2886cfea6db003ad3af9ac8794b69500"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/EventHub.HttpApi/Controllers/Events/EventController.cs:141-153 | src/EventHub.HttpApi/Controllers/Organizations/OrganizationController.cs:75-87"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi/Controllers/Events/EventController.cs"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"2aa137c75e58cfb373c8db3bfe2f4dba5932b14cd7fe24ac4cd2149ebcfd4246"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs:140-152 | src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs:149-161"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f61f90c6b0a2594489d9954d9dd49705dfbf897325c3e56fc7848a96b067c49"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/EventHub.Web/Pages/Payment/CustomPostCheckout.cshtml.cs:47-59 | modules/payment/src/Payment.Web/Pages/Payment/PostCheckout.cshtml.cs:47-59"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Pages/Payment/CustomPostCheckout.cshtml.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"76fff9e9cb0fbb138902a47a8858da983a18fc4dca74e2c5b35c2cf47f523b99"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/EventHub.Web/Pages/Pricing.cshtml.cs:56-66 | src/EventHub.Web/Pages/Pricing.cshtml.cs:72-84"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Pages/Pricing.cshtml.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"337d62c6ae4b5ee0a6496f53379ef268163c801e63811d553fdfdd14ae086e56"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 4): src/EventHub.IdentityServer/Utils/SameSiteCookiesServiceCollectionExtensions.cs:10-21 | src/EventHub.HttpApi.Host/Utils/SameSiteCookiesServiceCollectionExtensions.cs:10-21 | src/EventHub.Web/Utils/SameSiteCookiesServiceCollectionExtensions.cs:10-21 | src/EventHub.Admin.HttpApi.Host/Utils/SameSiteCookiesServiceCollectionExtensions.cs:10-21"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Utils/SameSiteCookiesServiceCollectionExtensions.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"01f1d9130639c5fe25238c6723c9628e3bac80d6994678067838a838c7ef9835"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/EventHub.Web/Pages/Organizations/Edit.cshtml.cs:44-51 | src/EventHub.Web/Pages/Organizations/New.cshtml.cs:40-48"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Pages/Organizations/Edit.cshtml.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc5a0c177d0a79b7e9c66e628428661889cf8a0658839d13cda94a4d3826559f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 3): src/EventHub.IdentityServer/EventHubIdentityServerModule.cs:135-138 | src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs:111-118 | src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs:109-116"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/EventHubIdentityServerModule.cs"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"4264b5a4a462373c3fcaa571d52d83192be23604f8a7615ec89798804530f2e3"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Payment.Domain.Shared: Payment.Domain.Shared: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c42a92b6474b94544c2b5178a54a071b5a823990800a59885f37b8eb7c0d58d9"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: EventHub.Domain.Shared: EventHub.Domain.Shared: abstractness 0.00, instability 0.20, distance 0.80 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"98ce8edf7ca46ac9c1bcf0d83eec81f06ead9419cf8f84a24606b47495f05730"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: EventHub.EntityFrameworkCore: EventHub.EntityFrameworkCore: abstractness 0.00, instability 0.22, distance 0.78 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"498525bf0602525525107e8feca7432630d6f297fe6413c9538b319799af4e04"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: EventHub.Web.Shared: EventHub.Web.Shared: abstractness 0.00, instability 0.25, distance 0.75 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"84e7de11eb4f295c0438141d35cabf7436b0659801dad20333dbe82c509820f0"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Session (LCOM4 5): Session\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Events/Session.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"922289dab99cc4d1b7f2a41245d589f4ebf4ab483e15d355502d690d54ba24e9"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Organization (LCOM4 4): Organization\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Organizations/Organization.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f6444ac3b348b9b14a5e16e1c88d7e189ee5954e611aff6a340538f6f37b1c8"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: Should_Create_A_Valid_Event: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/EventHub.Domain.Tests/Events/Event_Tests.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"df0652f510563c6a931b13d4b4498bd9ce02e12fbf73e36699acdf896792c12d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): Method1Async: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"modules/payment/test/Payment.Domain.Tests/Samples/SampleManager_Tests.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5615ea8c2fdeb6af1d88c5efc59d9f95391e9184ab4aac51e729421d8397dfd3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): Method1Async: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"modules/payment/test/Payment.TestBase/Samples/SampleRepository_Tests.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"778995d654ec92cf277e3f7684dbf5b045ccaf26fa135d9a442d01f7f5ce7d67"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.TestBase: Volo.Abp.TestBase 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b8543986a57914b9cff35732874a259f77cbb5b7aa24d6e382e83a94072f9b63"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Autofac: Volo.Abp.Autofac 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7850df8d2f215b45e2e1d5e78a8d75e5b87eb9fb9eba0558ff572849d20d953"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Authorization: Volo.Abp.Authorization 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c2d17183f22318aa31ba132e140df8a728eab02824ac1a638c578e4034a61a3c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.EntityFrameworkCore.Sqlite: Volo.Abp.EntityFrameworkCore.Sqlite 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfd36ba5efa9806932bfd0e62bb97e3da9a31f6d3dd7e9b11b2470bb03bd708d"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Account.Application.Contracts: Volo.Abp.Account.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"36c07a04e85ead6c6047475cce8eae22b208d55e1687fd3ba1b432f0287c1313"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AutoMapper: Volo.Abp.AutoMapper 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5eae36a1feb8e7fd85a839fa29578ea03aad9e2f7c55332f42ddbcad8f19e6ef"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Caching.StackExchangeRedis: Volo.Abp.Caching.StackExchangeRedis 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"354012aed476c5d0daeefc09b2c1c03efcc2d3a0550046bdddc1f7fc609f8195"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Mvc.Client: Volo.Abp.AspNetCore.Mvc.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f84f7172147305821637dca6fddaed042006e0a0d237c19067061bb6d7f99cfc"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Authentication.OpenIdConnect: Volo.Abp.AspNetCore.Authentication.OpenIdConnect 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fd81dc0e0ef59f4fcb877c6cbd5b773c38408b335e874c485f2ebeccdcef5e78"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Serilog: Volo.Abp.AspNetCore.Serilog 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"56ce9b2b5b3c85efec8d1baec2773ff150704cde7255698e155a36ced6271f44"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Http.Client.IdentityModel.Web: Volo.Abp.Http.Client.IdentityModel.Web 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c18fc0fd1447bd5c069f59141b46cf06981f0d304fbc9657a213f7799f940fa7"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Swashbuckle: Volo.Abp.Swashbuckle 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e7b24320bfa3b8aa5dfe5d7ba4203d9ce33005b424aa923e940f451f84c32d1e"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Public.Web: Volo.CmsKit.Public.Web 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"113d68ac68381ee3129f843385c39d7f7030b84a9b6ecce8adfd3bfe04ffd6bd"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Studio.Client.AspNetCore: Volo.Abp.Studio.Client.AspNetCore 3.0.6 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"56b2bf897546c6ca8d4ebba49d7f7b2e0854d78a6bfef1dcdebe0e9e0ab14feb"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy: Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"58c03577fb31b7ca2e47f6f37daf1ce20e30135a7e5ae2a8635453ef3798343d"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared: Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a9589292292471a3ac2f429703582fd257729a55aefcafdb9a37692387bea91d"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore: Volo.Abp.AspNetCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"05c1c97e8e4210ab1afc57feeb383daad7f42ab9da42ad041d1fab50573865a6"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic: Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0129e07559224ba6cc59586ba10d0fef18a0b1c0f1e506f4577010d547bd9bbb"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Account.Web.IdentityServer: Volo.Abp.Account.Web.IdentityServer 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"28f4135bafb697ea32d09d633ba3c8266efb73325184357c8843258215dc1002"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Account.Application: Volo.Abp.Account.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d96f053438f1f21736300e36c12911e7fbd08b4c58ca9d45adcb7581f3a4fc21"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Account.HttpApi: Volo.Abp.Account.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0a9c7b29d6fc7553bb8df2973034c49830734963e8d6011aa9d1dd57de121639"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Mvc: Volo.Abp.AspNetCore.Mvc 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8b726371fb0ca0e69629cf1d2dfa7cd2fbb6f78fce1449466227c9d298feb9c4"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Public.HttpApi: Volo.CmsKit.Public.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6c7fac670ca4b88ccc00e43743528ecf0fe277321865438e7e34ab3c5295b657"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Http.Client: Volo.Abp.Http.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4248ba0ec2d872dda155519620bcdd495eb9fe34d8cd796163739777004b68ea"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Public.HttpApi.Client: Volo.CmsKit.Public.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a91303fb94107af3ccb6b7d0f8e9e66ef78315013e013df2e85a48dc0ea74b8c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BlobStoring.Database.EntityFrameworkCore: Volo.Abp.BlobStoring.Database.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a19ba452e9538db426187aa86d87adca71085811f5a3896dbf17c1e7b3049a14"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.EntityFrameworkCore.PostgreSql: Volo.Abp.EntityFrameworkCore.PostgreSql 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"191dc32531885d7f5b8ed6a6a6fa850866a8c94c4f59ba62f3ce353a6857f2b9"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.EntityFrameworkCore: Volo.Abp.PermissionManagement.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e0d78819be26b26fadf58682f1b871f3037ac0ce5f953018e5cf6298ddbcd304"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.EntityFrameworkCore: Volo.Abp.SettingManagement.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"59c7e9179a105b9b6a26ea9d15174f6cb1c25cc1665271689ebbb9ec65b58574"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.EntityFrameworkCore: Volo.Abp.Identity.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"671d93d5f7a0367e35b2b173b9e96b1c0447c0fa1298cccc4dabaeb13ecc367c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.IdentityServer.EntityFrameworkCore: Volo.Abp.IdentityServer.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cc5c8bb27a3fa8fcec5f226310e5e57f4df3c5bb0f5394d565766e42561392c0"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BackgroundJobs.EntityFrameworkCore: Volo.Abp.BackgroundJobs.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"38d3b13c4d2641d8715cf5806ec7606a9c315f5420a5617f571cc62c00ba4e31"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AuditLogging.EntityFrameworkCore: Volo.Abp.AuditLogging.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"43d28ae9b76c810b4743082662fa27d84b1f9a3d069637a1e5c22cbab621622a"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.EntityFrameworkCore: Volo.CmsKit.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ec429f50b91b0904c08c3944e277b2450b4efb6c8cac6a1967f4d2068ce23a46"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BlobStoring.Database.Domain: Volo.Abp.BlobStoring.Database.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"612591a4abc63b47abf5538449bb0778f8e1e844e5ff6e85829a70e5e459caf7"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Emailing: Volo.Abp.Emailing 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"08632b9cab372ab3af8f6814c1f9b83d45987517185b356b5b86c486ab366a20"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.Domain: Volo.Abp.Identity.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"342661959baf1ba731719b8dd4e6db2e707a7d2dc25d9a1d1d81ed80d76ef3ce"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.Domain.Identity: Volo.Abp.PermissionManagement.Domain.Identity 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2adf3977f832df93b2dd692ec43acbd745b6d1fb13ef3de2c5a15088f784a5b"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.IdentityServer.Domain: Volo.Abp.IdentityServer.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"11273299b4ad55e46cf94871bc9785b883bfb22bdba1ff9573f43bbafbb17067"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.Domain.IdentityServer: Volo.Abp.PermissionManagement.Domain.IdentityServer 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6a7a58bb32e74bc19b13b9843fb5b6f202337b04497b910be1f5ce5d0e9d3ef2"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BackgroundJobs.Domain: Volo.Abp.BackgroundJobs.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"da6f00538c20b2f305763329a2d84d258dd948107b1a0b99719fa43e66723801"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AuditLogging.Domain: Volo.Abp.AuditLogging.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4cef092d2f1ee611c950cca39d35968dac398fb7812b303ebb0cfc86f0e69448"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.Domain: Volo.Abp.SettingManagement.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d45e8f84290c74c0cc7c1f0e4a3536d06ab4eb16505071e0f58579d234419a1"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Domain: Volo.CmsKit.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"495d86c48e01ad552d1effe3690f860aba33fb7699e13ce88b1c1e6f04af9c41"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BlobStoring.Database.Domain.Shared: Volo.Abp.BlobStoring.Database.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a5bb2b3bef7a822432ec78e9910424ecff2c0510f40ae29dbf273e8ff90dc6fe"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.Domain.Shared: Volo.Abp.Identity.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"700b4464a7759f63cc3dbdb456b7c1a7584df8411d23f83f25b8ee2fe013d894"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.IdentityServer.Domain.Shared: Volo.Abp.IdentityServer.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"af75c70ee0b2494421a3e93b6f14cc304b9b9cbe42cdb8fdb4a5543f38e1a6e5"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BackgroundJobs.Domain.Shared: Volo.Abp.BackgroundJobs.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"849d3b68a47d785e2e2fff1f37d8a38b0e385cb63488b79f41d0292a3af6cb3c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AuditLogging.Domain.Shared: Volo.Abp.AuditLogging.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9a486872b2e92084da49e2b264f74ff3bcfcaffeefd4065d86991c5285010e3c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.Domain.Shared: Volo.Abp.PermissionManagement.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a9d37328b640f9937f044bb513d4ca11313e336e36da56dde599367bdca853fe"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.Domain.Shared: Volo.Abp.SettingManagement.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"72095a490354ac0b7c3aa443b205b68b5aaee118dbc7b9741e93200a0037c3f4"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Domain.Shared: Volo.CmsKit.Domain.Shared 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff0c406ebb232167942de7ea6bb0cf1011131183cd43152e1f1a817c8ca7216a"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.BackgroundWorkers: Volo.Abp.BackgroundWorkers 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"be5f2f987181aa040057bb7e8a05c8d413ba4dbb3c37b549cb08e74de74b7818"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Ddd.Application: Volo.Abp.Ddd.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"69bb6015d51f9be1d828c1d0dc264b4a05a69692c8c437aa0e58133c0e51ec8c"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Public.Application: Volo.CmsKit.Public.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d0ddb802e9a5076c2bd36fcf21d9f772eaab781aabcacf62fb95b313e0b67eb6"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Ddd.Application.Contracts: Volo.Abp.Ddd.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5289c1891bf3aea4ee65ea6a5766edabb1235e5220109800045d7a7037cc0431"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Public.Application.Contracts: Volo.CmsKit.Public.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a5877202f2bd527b1e642658c5fb612b63b3f9d16b7b8f4bf21e481fc6ae1bcd"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Autofac.WebAssembly: Volo.Abp.Autofac.WebAssembly 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b62a3143aca774a8cb3fc5e8e6bdc16e652a8d56265855ce4eb41ade470c7316"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme: Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b012a87473c9d430a64fa9490909e0ff050e6c3ac740cff2b05704d8f692bfce"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.Blazor.WebAssembly: Volo.Abp.Identity.Blazor.WebAssembly 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"84addb636d4be1dc2cc219888ca66274510e3baf9873028f33248312cc4fb2eb"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.Blazor.WebAssembly: Volo.Abp.SettingManagement.Blazor.WebAssembly 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4afc82e01f2436dcaaff42a6165db0344241e9acbe95272d80a5576157fef330"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.HttpApi: Volo.Abp.Identity.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"86156e79e03dfa9768a3b0db1e437cf01eba92d7d240bc25ad8d4f567e162799"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.HttpApi: Volo.Abp.PermissionManagement.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"618f0c59e6a67993fd0d3c121953fc3fc4042c7204e38ea0cebe842195378f2e"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Admin.HttpApi: Volo.CmsKit.Admin.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6e096fb87f1aa5291b9e7ae7ff260e423bc00dd83f4b774ff6012d7fb4d01078"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.HttpApi: Volo.Abp.SettingManagement.HttpApi 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"37c71039b5dcb76428faf30d9e27b3a0177269b0c9e3faffe0e4921e1bf557d9"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Account.HttpApi.Client: Volo.Abp.Account.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2dbae0db60f140a3068b57ba1709e80aaab9a29340588741df6a8e8bb84219be"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.HttpApi.Client: Volo.Abp.Identity.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7021d0f0fde37975a91b7820115150261905c9f7c91e2ac1d93998c913d4843d"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.HttpApi.Client: Volo.Abp.PermissionManagement.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b5ad65af964ff6ae4f2f104b31d388974b2c9dddfa6166edb87b6ede5fc4230"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Admin.HttpApi.Client: Volo.CmsKit.Admin.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e104d58a0569c8fb2b5ed1893a12c4cbd93c4d1177ddd0627abef91aac09da0"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.HttpApi.Client: Volo.Abp.SettingManagement.HttpApi.Client 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bee8f58c0c56fc2a01ad8d21ebfba8543cf55602cb019ea3d8ab527cd5b4a3a1"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.Application: Volo.Abp.Identity.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1533f9650d30a390947bbf083ab85e4c8f70ce9c5eb1d26347499ceef5a452c0"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.Application: Volo.Abp.PermissionManagement.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8aba22c190583af32817ae9e6fe517eec610fcc32f77c3ae0cceaacb8a77682f"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Admin.Application: Volo.CmsKit.Admin.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"57f632ada3684b37ef56059cac21941b0cfeff5a972c633ec632d4cc4175bbb0"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.Application: Volo.Abp.SettingManagement.Application 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a6e6fa0321901c7f287400c8fe43650b17aece0e6c0b86df9300676051c838af"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Identity.Application.Contracts: Volo.Abp.Identity.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cec4ef257527f1d569c35305d2c061b8574208305ae3743e24c23be6d9bfa918"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.PermissionManagement.Application.Contracts: Volo.Abp.PermissionManagement.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9d0f38d9340d53b5f39aa9cdd4f565ad0fd5525b87f2709ba54cd4e7d44863ba"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.CmsKit.Admin.Application.Contracts: Volo.CmsKit.Admin.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"39e68c305ac7b07b3b0ed280e0adaf4662c8d88567178cab1c42b7c4ed7ef9f6"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.SettingManagement.Application.Contracts: Volo.Abp.SettingManagement.Application.Contracts 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"01bfd2d1381c236a79ffe433b6098b6c4be61e45babc9c415fdf21ca1fb5f631"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.EntityFrameworkCore: Volo.Abp.EntityFrameworkCore 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b912287e39299b96dfb9230ec69b3b3b3c3b09d3f8c8e1952535d7f80b5903cd"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Ddd.Domain: Volo.Abp.Ddd.Domain 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b36a9b2519554317b6a136142d3deb0b4493194ad234c22a4f082a72899b6a2e"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.Validation: Volo.Abp.Validation 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bfbf2b0a75034648f6e447ec09e8570fa9565a92aad2202696143bdf04ea43d4"}},{"ruleId":"D14","level":"error","message":{"text":"Banned license: Volo.Abp.AspNetCore.Components.WebAssembly.Theming: Volo.Abp.AspNetCore.Components.WebAssembly.Theming 10.4.1 is licensed LGPL-3.0-only (banned by policy)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ea713e0710ce8d64f02b9c2b2c83255ba6b6dce878637a2a3925189d86e5605f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 1 significant file(s) lose their only recent owner (largest: src/EventHub.DbMigrator/Data/EventHubSampleDataSeedContributor.cs). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2f0d2d12be994fe55ff5c57b10480a31279bcf2c208ee99aeeb56705292e05d1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //// TODO: Find way to parse with System.Text.Json instead of Newtonsoft \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"modules/payment/src/Payment.Application/PaymentRequests/PaymentRequestAppService.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"ece90b9808e374b3f22e5cb3e88d570bca0c268a10559e1fd74dc083438c8de9"}},{"ruleId":"D18","level":"warning","message":{"text":"Monorepo: only 1 of 2 solutions was scored: This repository contains 2 .NET solutions, but a scan analyzes ONE. Every score, lens, and finding here reflects only \u0060EventHub.sln\u0060 \u2014 the other 1 (\u0060modules/payment/Payment.sln\u0060) were not analyzed and are not represented in the headline. To cover them, scan each solution as its own target and group them in a Solution or Product for a portfolio roll-up. If a secondary solution is an archived or vendored tree, declare it \u2014 \u0060.gitattributes\u0060 (\u0060path/** linguist-vendored\u0060) or \u0060.editorconfig\u0060 (\u0060[path/**] generated_code = true\u0060) \u2014 to exclude it from discovery the same way generated code is."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a714c749a7ed0270f25ef54f0d77846abefb01ce5214d0fe8c64e4324d302faf"}},{"ruleId":"D18","level":"note","message":{"text":"Thin analysable surface across projects: 5 project(s) carry only a thin slice of real code (e.g. \u0060EventHub.Admin.HttpApi\u0060 with 22 significant line(s)). The mean analysable-surface weight is 93 %, lowering Solution Shape by about 0.5 point(s). Consolidate thin projects or grow them into substantial, well-scoped assemblies."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dd0b92fd965c2065080f16843920964ee00f7696ea03d87cdf61aed4cd2c746a"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for single-entity retrieval operations. The \u0060EventAppService\u0060 uses \u0060GetByUrlCodeAsync\u0060 and \u0060GetLocationAsync\u0060 (which returns a Detail DTO), while the Admin \u0060EventAppService\u0060 uses \u0060GetAsync\u0060. This mixes URL-based and ID-based retrieval naming conventions.: Standardize on \u0060GetByIdAsync\u0060 or \u0060GetAsync\u0060 for ID-based lookups and \u0060GetByUrlCodeAsync\u0060 or \u0060GetByCodeAsync\u0060 for code-based lookups. Ensure the return type is consistent (e.g., always returning a Detail DTO or a generic \u0060TResult\u0060). Consider renaming \u0060GetLocationAsync\u0060 to \u0060GetByIdAsync\u0060 if it returns full details. (signatures: Task\u003CEventDetailDto\u003E IEventAppService.GetByUrlCodeAsync(string urlCode) | Task\u003CEventDetailDto\u003E IEventAppService.GetLocationAsync(Guid id) | Task\u003CEventDetailDto\u003E IEventAppService.GetAsync(Guid id))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5f2c8552d07154c4ed3f5b51230076a458a159aa3a9d45a027c357fa3c14639c"}},{"ruleId":"D22","level":"warning","message":{"text":"Duplicate method name \u0060GetCountriesLookupAsync\u0060 exists in both \u0060EventHub.Events.IEventAppService\u0060 and \u0060EventHub.Admin.Events.IEventAppService\u0060. While they are in different namespaces, the lack of namespace qualification in the signature list suggests potential confusion if these interfaces are imported or aliased.: While technically distinct due to namespaces, the identical method signature across different modules suggests a lack of global naming convention for \u0027Lookup\u0027 operations. Consider if \u0060GetCountriesAsync\u0060 would be more consistent with \u0060GetListAsync\u0060 patterns. (signatures: Task\u003CList\u003CCountryLookupDto\u003E\u003E IEventAppService.GetCountriesLookupAsync() | Task\u003CList\u003CCountryLookupDto\u003E\u003E IEventAppService.GetCountriesLookupAsync())"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e1c83f3350785618e1b1ba25bba105b2be7986202e5b110bfc91c06d5c1f5012"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for list retrieval. Most services use \u0060GetListAsync\u0060, but some might use \u0060GetAllAsync\u0060 or \u0060QueryAsync\u0060 in other parts of the codebase (though not explicitly shown here, the pattern \u0060GetListAsync\u0060 is used for filtering). However, \u0060GetByUrlCodeAsync\u0060 is an outlier in the Event service.: Ensure all list retrieval operations follow the \u0060GetListAsync\u0060 pattern with a filter/input DTO. The \u0060GetByUrlCodeAsync\u0060 in the Event service is a specific exception that should be clearly documented or renamed to \u0060GetByCodeAsync\u0060 for consistency with other \u0027GetBy\u0027 patterns if they exist. (signatures: Task\u003CPagedResultDto\u003CEventInListDto\u003E\u003E IEventAppService.GetListAsync(EventListFilterDto input) | Task\u003CPagedResultDto\u003COrganizationInListDto\u003E\u003E IOrganizationAppService.GetListAsync(OrganizationListFilterDto input) | Task\u003CPagedResultDto\u003COrganizationInListDto\u003E\u003E IOrganizationAppService.GetListAsync(OrganizationListFilterDto input))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e7449a6533805dbf0e45148187a7e6121a7d1205a63463bff6477ff6f1fbc5c1"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022Add your own setting names here.\u0022 \u2014 Delete - the SettingNames block already says this."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Domain/Settings/EventHubSettings.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c7fd9b53e83ca7a9fed75b05e9db98d8876068628eeb5c76d1d32381c77fd5d"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/appsettings.json"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab600dbed6c6be3ac45f0a9b6ba10a7e576021087f1e30fef4e26c7f55ff8fb8"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/appsettings.json"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab600dbed6c6be3ac45f0a9b6ba10a7e576021087f1e30fef4e26c7f55ff8fb8"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/appsettings.json"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab600dbed6c6be3ac45f0a9b6ba10a7e576021087f1e30fef4e26c7f55ff8fb8"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: generic-api-key: matched rule \u0027generic-api-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/appsettings.json"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab600dbed6c6be3ac45f0a9b6ba10a7e576021087f1e30fef4e26c7f55ff8fb8"}},{"ruleId":"D28","level":"note","message":{"text":"Rotate the exposed credentials \u2014 git history can\u0027t be un-committed: Some of these secrets are in git HISTORY: deleting the file does not remove them (the commit persists on every clone, fork and backup). The remediation is to ROTATE each historically-exposed credential and treat it as compromised \u2014 not to delete the file. Rewriting history is disruptive and unreliable across existing forks. (Working-tree-only secrets \u2014 no commit \u2014 can instead be removed from the file and moved to a secret store.)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"etc/azure/Dockerfile.base"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"24b11312ccd8ee701d114f91c40dafbdf77a6f33d402aefca189182853d0a287"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.HttpApi.Host/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ce7e4c6b29a0f8464cfc1bd37360d5bf6595abfb6b3050d72aaef108746ed96"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.HttpApi.Host/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"84fb11169b289b4f19cd40e865041a3a29df7736092683834f34b2b647293e3e"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1a722504e499c1f36d189a5228f6ac40ce8d8168a99ed384bd2f3c774472d45"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d782bc63bf62e4b7e5e4e3a463ff1865a1709b7f2aca24248741869c172edc1d"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a01cd014c94de1e45cdd1d8c6df62a9a3edaae3d58b7ca32bbe7aea4e2828fd"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"368d96703375e2ecc3956702b6ecd86079498695227a813569e8918bcd633006"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b4100255c523201ecf274e6ad0af3f6bc9156c623e81e88da2db019ed9d0d9a"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"564e77202e4fff1ca46c7164a0a0317dd43e45fd7bd1d8c059e9a9adc11108e6"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4a149ac49b13bc0c899e297f0c69b87a1c664e9da80485b6cf762898b0c1a01"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8bcc4e3e8c203a409271798ee490a71e86c6a4af2301d40f55f5baa222a69e2"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d80100d2feda5d43fbfceecc37dde3f84019555f293d8cf9783ae8826a6bf99f"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"706149624049c1454b5caea33a5e9074f15b8b047e836e7030c52942d308258a"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4175760e909a0605e22580202d6a37f913bc0301a205cc5bde3a4b0e67c770c"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"41ca5759509f635be88e6fc9388599fa5f2aa57f882c56221a94a2433090fcc3"}},{"ruleId":"D31","level":"warning","message":{"text":"Medium IaC: DS-0001: \u0027:latest\u0027 tag used"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c901579729fd588aa129293658ed129d58505186fe3f7f98f49770bd2434fcd"}},{"ruleId":"D31","level":"warning","message":{"text":"Medium IaC: DS-0001: \u0027:latest\u0027 tag used"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc9d67a7b8665a0baf7167589bca88a95d9bf351e2fa6e342b99dfef834e687a"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"etc/azure/Dockerfile.base"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77ca4d4215b31a040220f8711b887ce239bedc3808ec0098c7fa3b3647fadd8a"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.HttpApi.Host/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"252ba8f76d3df8f1bdc129ab2cd328ed3b8cdbd431a246fc23d584d52a286f36"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.HttpApi.Host/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"59e0ca8875888deba8d85f42d0485b72e8039c330b1258461cc37a5d350117ac"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"de5e0e8b3e1d866d7b6039b351140265e3ff5381a424d46c5fdb8ae3add5b8a0"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Web/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca1bcc36b6252ca01626cf46fb6613ebd753bc61fb4723e5c45728dffcb84510"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"169213a59f17c72ca09b03bf7105c40423c485f7015b00faf2e9ab49c6339658"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"68fa05c744c526e1121239dc43bd8719c6eb71676e169601ba21d05d96e39481"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f49f2696bc55708b44fea572c8781d2bb7945ad7e6ce685a8c231f058b95966d"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.DbMigrator/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4625bc598403b5db2e16281adf8bfc043fa4a15c0c76646c1543232fc46607d1"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2295b4462037b70e7e8ec744e4999ec3d0075bc0266908c7d5a4e612c3f91a0"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e4ce2fccec4da8924e26a1ae248c3998cc403d3523d1b6bc8395e20a84eb22b"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"caf74b35b19408b3f1d350ca32abcba0d225536740c8815c30e14175640f3dea"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6ed15b440ec3a5fcea41cc08fd82c9bc37f09734f07390ce7c2960eb27f278c"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"03dcf0dcf609aa0997df36c36b4387494670af277b3be612eb0a27122fe4eaf7"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Web/Dockerfile.azure"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e459a3a7c581a13e125b307f6f7ebb9a6b6321261a9e3dbd97c1e196c131039e"}},{"ruleId":"D34","level":"note","message":{"text":"Dormant codebase: 62 of 66 significant files have no living knowledge \u2014 the codebase as a whole is dormant, not 62 separate risks. Re-engage owners or document before change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4c69f1e54b7dd6fe9029dd02df6ba8f8145b789f2f18dbdaa086c40ded49dba6"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: EventAppService.cs \u2194 EventController.cs: \u0060src/EventHub.Application/Events/EventAppService.cs\u0060 (context EventHub) and \u0060src/EventHub.HttpApi/Controllers/Events/EventController.cs\u0060 (context EventHub.HttpApi) live in DIFFERENT modules yet change together 69% of the time (9 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Application/Events/EventAppService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6634a5be33d7ba99533d4fdfc1de9195e3376eda5fc2b3e14a95ee142b2f34f9"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: EventHubIdentityServerModule.cs \u2194 EventHubMenuContributor.cs: \u0060src/EventHub.IdentityServer/EventHubIdentityServerModule.cs\u0060 (context EventHub.IdentityServer) and \u0060src/EventHub.Web/Menus/EventHubMenuContributor.cs\u0060 (context EventHub) live in DIFFERENT modules yet change together 55% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.IdentityServer/EventHubIdentityServerModule.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa1d87fca6cb2a3329f5f0835c579e64fbdac34560177876c5a4922a2fe735b7"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: EventHubHttpApiHostModule.cs \u2194 EventHubMenuContributor.cs: \u0060src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs\u0060 (context EventHub.HttpApi) and \u0060src/EventHub.Web/Menus/EventHubMenuContributor.cs\u0060 (context EventHub) live in DIFFERENT modules yet change together 55% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b13a316aca9f1f2daff397e6d7d097a0430d10c13a9a8575e50067a935241c6"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: EventHubAdminHttpApiHostModule.cs \u2194 EventHubMenuContributor.cs: \u0060src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs\u0060 (context EventHub.Admin.HttpApi) and \u0060src/EventHub.Web/Menus/EventHubMenuContributor.cs\u0060 (context EventHub) live in DIFFERENT modules yet change together 55% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7216e0ef7824bbc76b5dc51f632287a3fe4ba52d25113507196e21350029eaea"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: CreateEventDto.cs \u2194 New.cshtml.cs: \u0060src/EventHub.Application.Contracts/Events/CreateEventDto.cs\u0060 (context EventHub.Application) and \u0060src/EventHub.Web/Pages/Events/New.cshtml.cs\u0060 (context EventHub) live in DIFFERENT modules yet change together 50% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Application.Contracts/Events/CreateEventDto.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d41b55a35f330ff43f69b909ba38e13fbb1715b3ed479fa57c77a309ffde83ce"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: IOrganizationAppService.cs \u2194 EventHubApplicationAutoMapperProfile.cs: \u0060src/EventHub.Admin.Application.Contracts/Organizations/IOrganizationAppService.cs\u0060 (context EventHub.Admin.Application) and \u0060src/EventHub.Admin.Application/EventHubApplicationAutoMapperProfile.cs\u0060 (context EventHub.Admin) live in DIFFERENT modules yet change together 50% of the time (5 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Admin.Application.Contracts/Organizations/IOrganizationAppService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0574c1213b13f43b603a8bef40675eee143d57a203763cfd65765b7a8272d5f4"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: EventReminderNotifier.cs \u2194 EventTimingChangeNotifier.cs: \u0060src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs\u0060 and \u0060src/EventHub.BackgroundServices/Events/EventTimingChangeNotifier.cs\u0060 change together 70% of the time (7 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a66db1d1174a46e37eb56bf419e9bfc061d4bc4d90d3e816f90286e8ab6485e0"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: EventAppService.cs \u2194 Track.cs: \u0060src/EventHub.Application/Events/EventAppService.cs\u0060 and \u0060src/EventHub.Domain/Events/Track.cs\u0060 change together 60% of the time (6 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventHub.Application/Events/EventAppService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"735cacb12496f97e45a61ffbc1cb80e070dbbbd1895ac99d8ea16395fd1a4a33"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1395","name":"Dependency on Vulnerable Third-Party Component"},{"id":"CWE-798","name":"Use of Hard-coded Credentials"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}